package br.com.dlm.simuladoitil.basicas;

import java.util.List;

public class Questao extends ObjetoGeral {

    public String pergunta;
    public List<Alternativa> alternativas;
    public String idAlternativaCorreta;
    public boolean respondida;

    public Questao(String id, String pergunta, List<Alternativa> alternativas, String idAlternativaCorreta) {
        this.id = id;
        this.pergunta = pergunta;
        this.alternativas = alternativas;
        this.idAlternativaCorreta = idAlternativaCorreta;
    }

    public Questao(String id, String pergunta, List<Alternativa> alternativas, String idAlternativaCorreta, boolean respondida) {
        this.id = id;
        this.pergunta = pergunta;
        this.alternativas = alternativas;
        this.idAlternativaCorreta = idAlternativaCorreta;
        this.respondida = respondida;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Questao)) return false;

        Questao questao = (Questao) o;

        if (!id.equals(questao.id)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = pergunta.hashCode();
        result = 31 * result + alternativas.hashCode();
        result = 31 * result + idAlternativaCorreta.hashCode();
        result = 31 * result + (respondida ? 1 : 0);
        return result;
    }

    public boolean checarMudancasAtributos(ObjetoGeral objeto) {
        if (objeto !=  null && objeto instanceof Questao) {
            Questao questao = (Questao) objeto;

            if (!pergunta.equals(questao.pergunta)) return false;
            if (!idAlternativaCorreta.equals(questao.idAlternativaCorreta)) return false;
        }

        return true;
    }
}
